class Order < ActiveRecord::Base
  has_many:line_items
  belongs_to:shop
  belongs_to:user
  
  @@status={'buyer_paid'=>'买家已支付',
                    'product_sent'=>'商家已发货',
                    'out_of_sell'=>'商品售完',
                    'buyer_confirm'=>'买家确认支付',
                    'product_returned'=>'买家已退货',
                    'seller_confirm'=>'商家确认退货'
  }
  
  def self.all_status
    @@status
  end
  
  #生成订单
  def self.get_paid_order(params)
    order=nil
    if params[:user]&&params[:shop]&&params[:cart]
      #买方用户对象
      user=params[:user]
      #商铺对象
      shop=params[:shop]
      #购物车对象
      cart=params[:cart]
      
      #构造订单
      order=Order.new
      
      #将购物项转换为订单项，并赋给订单
      cart.items.each do |item|
        li=LineItem.from_cart_item(item)
        order.line_items<<li
      end
      #记录订单买方
      order.user=user
      #记录商铺
      order.shop=shop
      #记录商品总金额
      order.product_sum_price=cart.total_price
      #记录订单总金额
      order.order_price_sum=cart.total_price
      #记录订单状态
      order.status=@@status['buyer_paid']
    end    
      order  
  end
end
